package com.xiu.java8.defaultmethod;

public class DefaultMethod {
	public static void main(String[] args) {
		Vehicle vehicle = new Car();
		vehicle.print();
	}
}

interface Vehicle {
	default void print() {
		System.out.println("我是一辆车!");
	}

	// Java 8 的另一个特性是接口可以声明（并且可以提供实现）静态方法。例如：
	// 静态方法
	static void blowHorn() {
		System.out.println("按喇叭!!!");
	}
}

interface FourWheeler {
	default void print() {
		System.out.println("我是一辆四轮车!");
	}
}

class Car implements Vehicle, FourWheeler {
	public void print() {
		// 第二种解决方案可以使用 super 来调用指定接口的默认方法：
		Vehicle.super.print();
		FourWheeler.super.print();
		Vehicle.blowHorn();
		// 第一个解决方案是覆盖重写接口的默认方法：
		System.out.println("我是一辆汽车!");
	}
}